With the arrival of 3G and smart phone era, there are more and more application programs on a mobile equipment such as a mobile phone. The pattern in which a user uses application programs on a mobile equipment such as a mobile phone is characterized of frequent bootup and short-time usage, which poses stringent requirements on bootup speed of application programs. If the bootup speed of application programs is too low, the time that a user spends on waiting for an application program to boot up may be comparable with or even more than the time that a user spends actually using the application program, which significantly decreases the user experience of a mobile equipment such as a mobile phone.
For example, application programs currently used on common mobile equipments and developed with Java language. Which may be called Java application programs, have the advantages of high portability, one-time compilation running, low development difficulty, high development efficiency, low development cost, and the like. As Java language is an interpreted language with low execution efficiency, Java application programs will encounter a serious problem of low bootup speed.
At present, there are many methods for increasing the bootup speed of Java application programs, wherein one method is that a Java application program is optimized according to its own processing logic, where measures such as lazy load and lazy initialization are taken to accelerate the bootup speed, the effectiveness of such a method is only applicable to a single Java application program itself, and the measures taken are closely related to the features of the Java application program; Another method is that, in the mobile phone software platform, the bootup speed of a Java application program is accelerated with measures such as pre-bootup, pre-load, pre-initialization, Copy-On-Write (COW), caching of application programs on exit, etc; such a method can accelerate bootup speed of all Java application programs without the need to make any modification on the activities.
As the bottleneck of the bootup speed of Java application programs is that Java application programs are interpretively executed, existing methods do not produce satisfactory results in increasing the bootup speed of Java application programs. JIT (Just in Time) is a just-in-time compilation mechanism which compiles Java codes into a local language before execution to avoid interpretive execution, so that the bootup speed of Java application programs is significantly increased. However, the existing JIT will compile codes in Java application programs into a local language before execution only when the codes are executed for a certain number of times; in addition, the results of a JIT compilation are abandoned as a Java application program exits, and no JIT compilation result is available on rerun of a Java application program, which then has to be recompiled during the rerun. As the bootup process of an application is executed once only on bootup of the application program, the bootup process of a Java application program cannot be accelerated by JIT. Because JIT will not compile codes that are executed only once, and while the bootup of a Java application program is the initial stage of rerun of a Java application program, no JIT compilation result will be available for execution either. Therefore, JIT in state of the art is unable to increase the bootup speed of a Java application program. Similarly, application programs on a mobile equipment that are developed with other interpretive languages with the JIT compilation mechanism will also encounter the same problem.
Therefore, the question of how to utilize JIT to increase the bootup speed of a application program has become one of the problems in state of the art that are pressing for answers.